package com.demodis.service;

import java.util.List;
import java.util.Map;

import com.demodis.domain.TblDeterPerson;
import com.demodis.domain.TblGroup;
import com.demodis.domain.TblUser;

public interface DeterPersonServiceI extends BaseServiceI<TblDeterPerson> {
	final String QDSOURL = "/deterPersonAction!queryDeterO.action";
	final String QDSAURL = "/deterPersonAction!queryDeterA.action";
	final String QDSFURL = "/deterPersonAction!queryDeterF.action";
	
	public Object get(TblDeterPerson deterPer, TblUser user);
	
	public Object getDeterPerInfo(TblDeterPerson t);
	
	/**
	 * 过滤被测评员工名单
	 * 
	 * 被测评对象：测评人员
	 * 院领导：所有中干，分管部门员工
	 * 中干：所有院领导，其他中干，自己部门员工
	 * 职能部门员工：所有员工（中干，院领导，普通员工，院长书记）
	 * 
	 * 测评人员：被测评对象
	 * 院领导：所有中干、所有职能部门员工
	 * 中干：其他中干，所有院领导、所有职能部门员工
	 * 普通员工：本部门中干（领导）、本部门分管领导、所有职能部门员工
	 * 
	 * @param posId
	 * @param userId
	 * @return
	 */
	public List<TblDeterPerson> getFilterAfterDeterPer(TblDeterPerson deterPer, TblUser user);
	
	/**
	 * 做组测评操作
	 * 
	 * @param deterGroup
	 * @return
	 */
	public boolean doDeter(TblDeterPerson deterPerson, TblUser user);
	
	/**
	 * 判断是否存在测评建议记录
	 * 
	 * @param detPerId
	 *            被测评者ID
	 * @param userId
	 *            测评者ID
	 * @return
	 */
	public boolean isExist(int detPerId, int userId);
	
	public Object queryDeterStat(TblDeterPerson deterPer, int userId, int groupId);
	
	public Object getPersSug(int userId);
	
	/**
	 * 判断该测评者是否存在
	 * @param userId
	 * @return
	 */
	public boolean perExist(int userId);

	/**
	 * 获取职能部门员工成绩
	 * @return
	 */
	public List<Map<String, Object>> getGroupEmpApp();

	/**
	 * 录入职能部门员工评价成绩
	 * @param map
	 * @return
	 */
	public boolean addAppScore(Map<String, Integer> map);

	/**
	 * @param userId
	 * @param groupId
	 * @return
	 */
	public List<TblGroup> getGroupList(Integer userId, Integer groupId);
}
